package listbyorder.access001_100.test6;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/6 14:28
 */
public class Solution2 {

    // 方法二： 直接根据索引下标的特性
    // 节省了空间上的成本
    public String convert(String s, int numRows) {
        if (numRows == 1) return s;
        StringBuilder res = new StringBuilder();
        int len = s.length();
        int cycleLen = 2 * numRows - 2;  // 一个循环的周期
        for (int i = 0; i < numRows; i++) {
            // 从第0行开始
            for (int j = 0; j + i < len; j += cycleLen) {
                res.append(s.charAt(i + j));
                if (i != 0 && i != numRows - 1 && j + cycleLen - i < len) {
                    res.append(s.charAt(j + cycleLen - i));
                }
            }
        }
        return res.toString();
    }
}
